#pragma once
#include "ParseTree.h"
#include "ScannerV0.h"

class ParseTree;
class Node;

class IRule
{

public:

    virtual void setScanner(ScannerV0* scanner)=0;
    virtual void error(const char * const errorDescription, Token* t = NULL)=0;
    virtual ParseTree* PROG()=0;
    virtual Node* DECLS()=0;
    virtual Node* DECL()=0;
    virtual Node* ARRAY()=0;
    virtual Node* STATEMENTS()=0;
    virtual Node* STATEMENT()=0;
    virtual Node* EXP()=0;
    virtual Node* EXP2()=0;
    virtual Node* INDEX()=0;
    virtual Node* OP_EXP()=0; 
    virtual Node* OP()=0;
};
